fix(google-forms): fail-closed auth, legacy formId key fallback, idempotency#5377
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Authentication now fails closed: if no webhook secret is in Form ID resolution in Adds Reviewed by Cursor Bugbot for commit 8b0c750. Configure here. |
6a64062 to
30eb669
Compare
…potency - verifyAuth now rejects with 401 when no token is configured instead of silently allowing unauthenticated requests through - formatInput falls back to the legacy formId providerConfig key (pre-#3141 rename to triggerFormId) so old deployments keep working - add extractIdempotencyId keyed on formId:responseId to dedupe retried Apps Script deliveries
30eb669 to
8b0c750
Compare
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 8b0c750. Configure here.
Summary
verifyAuthnow rejects with 401 when no token is configured instead of silently allowing unauthenticated requests throughformatInput's form-id fallback now checkstriggerFormId(current subBlock id) then falls back to the legacyformIdkey — the subBlock was renamed in fix(inputs): canonical params + manual validations + params resolution cleanups #3141 but the handler was never updated, so ~8 webhooks deployed before that rename still store the old key inprovider_configextractIdempotencyId(keyed onformId:responseId) so retried Apps Script deliveries get deduped like other providersType of Change
Testing
webhooktable: 0 of 14 Google Forms webhooks (active, inactive, archived) have a missing/empty token, so the fail-closed change can't break any existing deploymentformIdkey is real prod data (8 of 14 active webhooks), not dead code, and added the fallback accordinglybun run type-checkandvitest run lib/webhooks/providers(151/151) passChecklist